home *** CD-ROM | disk | FTP | other *** search
Wrap
/* _____ / __ _ _ __ __ __ _ __ ____ \ / _/ \ / / / / / / __ ___\ / \ / __ / / / __ / / \ / / / / \ / ______________________________________________________________________________ Updater, © 1994 by Casa Nova, Sysop of Skyline BBS Berlin. Written for /T\empest BBS v3.15 or higher Versions. Started: 05-26-94 NOTE: - Create an subdirectory "UPDATE!" to your "BBS:DOORS/" directory! - Create an subdirectory Doors:UPDATE!/ - Copy all files to this directory that you want the users have access to through the Updater-Tool. - ...and you need LHA in your c: directory! Read the document! ______________________________________________________________________________ */ /*TRACE RESULTS*/ /*--------------------------*/ OPTIONS RESULTS /*--------------------------*/ ARG BBS_NODE /* Grab the Node Number */ Address value 'TempRexx-'BBS_NODE /* Tell Arexx where the BBS Is ----------------------------------------------------------------------------*/ VERS = '1.4' /* DON'T CHANGE! / ----------------------------------------------------------------------------*/ PROGRAMNAME = 'Updater' /* DON'T CHANGE! / ----------------------------------------------------------------------------*/ V_DATE = '07-31-94' /* DON'T CHANGE! / ---------------------------------------------------------------------------- / $VER: Updater 1.4 (31.07.94) © by Casa Nova, Sysop of Skyline BBS Berlin ----------------------------------------------------------------------------*/ Bufferflush /* */ signal ON ERROR /* */ signal ON HALT /* */ signal ON SYNTAX /* */ signal ON FAILURE /* */ signal ON IOERR /* */ /*----------------------*/ 'BBSIDENTIFY' ABBEREXX /* + */ TEMP = (result) /* Tempest Version */ /*----------------------*/ TEMP_VERS = SUBSTR(TEMP,1,4) /* */ IF TEMP_VERS < '3.15' THEN DO /* */ MESSAGE /* */ MESSAGE ' INFO: This Tool needs a Tempest Software higher than 3.14a !' MESSAGE ' You are still running Tempest 'TEMP CALL DONE /* */ END /* */ /*----------------------*/ 'BBSIDENTIFY ANSI' /* Ansi on/off? */ GFX = (result) /* */ /*----------------------*/ 'BBSIDENTIFY' NAME /* + */ SYSTEM = (result) /* Name of BBS */ /*----------------------*/ 'PATH' 0 /* Get the path of the */ BBS = (result) /* BBS:OPTIONAL/ */ /*----------------------*/ 'Getvar' 0 /* UserName */ RUName = (result) /* Name UPPER-CASE */ /*----------------------*/ 'PATH' 6 /* Get the path of the */ DDOOR = (result) /* BBS:DOOR/ */ /*----------------------*/ 'PATH' 15 /* Get the path of the */ TEXT = (result) /* BBS:TEXT/ */ /*----------------------*/ 'Getvar' 18 /* + */ SN = (result) /* UserSlotNumber(User#)*/ /*----------------------*/ 'GetStr' 16 /* + */ DAT = (result) /* 30-05-94 */ /*----------------------*/ COD=TIME() /* 22:22:22 */ /*----------------------*/ UDDIR='RAM:UPDATE!'BBS_NODE /* */ /*----------------------*/ DOORUD=DDOOR'UPDATE!/' /* */ /*----------------------*/ TIM = TIME() /* TIME */ DATE = DATE(USA) /* DATE 12-31-93 */ /*----------------------*/ CONFIG = 'CON' /* (don't change!) */ fileCON= BBS'Doors/UPDATE!.data' /* (don't change!) */ /*----------------------------------------------------------------------*/ IF ~SHOW('L','rexxsupport.library') THEN ADDLIB('rexxsupport.library',0,-30,0) IF ~SHOW('L',"rexxreqtools.library") THEN ADDLIB('rexxreqtools.library',0,-30,0) file0 = 'NODE:DOOR_'BBS_NODE /* Create NODE:DOOR_# */ OPEN(fn0,file0,'W') /* Displays in WHO.mod */ Writeln(fn0,'/T\empest Updater ') /* when this tool is */ CLOSE(fn0) /* used! */ START: HEADER1 = MESSAGE ' 'system' 'PROGRAMNAME' 'VERS' 'copies(' ',23-length(system))''copies(' ',15-length(PROGRAMNAME))' Designed by Casa Nova ['V_DATE'] ' HEADER2 = MESSAGE ''COPIES('_',79)' ' START: CLS MESSAGE HEADER1 HEADER2 MESSAGE /*======================================================================*/ /* CONFIG / STATS */ /*======================================================================*/ STATS: c=1 IF ~exists(fileCON) THEN DO Version = 0 /* 1 11 Letter */ ShutOff = 0 /* 2 11 Letter *//* 0 = ON 1 = OFF */ TdyDate = DAT /* 3 11 Letter */ TdyFiles = 0 /* 4 11 Letter */ TdyUsed = 0 /* 5 11 Letter */ TdyDLDs = 0 /* 6 11 Letter */ TdyUPD = 0 /* 7 11 Letter */ TotalUsed = 0 /* 8 11 Letter */ TotalFiles = 0 /* 9 11 Letter */ TotalDLDs = 0 /* 10 11 Letter */ TotalUPD = 0 /* 11 11 Letter */ Updates = 0 /* 12 11 Letter */ CALL WRITE_CONFIG END IF exists(fileCON) THEN DO OPEN(fnCON,fileCON,'R') /* Check # of lines */ DO until eof(fnCON) /* to the end of file */ con.c = readln(fnCON) /* Number of lines = x */ c = c+1 /* */ END /* */ CLOSE(fnCON) /* */ END Version = con.1 ShutOff = con.2 TdyDate = con.3 TdyFiles = con.4 TdyUsed = con.5 TdyDLDs = con.6 TdyUPD = con.7 TotalUsed = con.8 TotalFiles = con.9 TotalDLDs = con.10 TotalUPD = con.11 Updates = con.12 IF TdyDate ~= DAT THEN DO TdyDate = DAT TdyFiles = 0 TdyUsed = 0 TdyDLDs = 0 TdyUPD = 0 END IF ShutOff = 1 THEN DO IF SN = 1 THEN DO MESSAGE 'OFFLINE! ' CALL WRITE_CONFIG END MESSAGE 'THIS TOOL IS OFFLINE AT THE MOMENT!' CALL DONE3 END WRITE_CONFIG: TdyUsed=TdyUsed + 1 TotalUsed=TotalUsed + 1 CALL STATS2 file0 = 'NODE:DOOR_'BBS_NODE /* Create NODE:DOOR_# */ OPEN(fn0,file0,'W') /* Create NODE:DOOR_# */ Writeln(fn0,'UpdateTool ') /* Create NODE:DOOR_# */ CLOSE(fn0) /* Create NODE:DOOR_# */ IF LENGTH(STATEF(UDDIR))=0 THEN DO ADDRESS COMMAND 'makedir 'UDDIR'' END IF STATEF(UDDIR)~='' THEN DO NOP END /*======================================================================*/ /* LANGUAGE */ /*======================================================================*/ 'Getvar' 92 /* + */ LANG = (result) /* Language of user */ /*----------------------*/ 'PATH' 11 /* Get the path of the */ OPTIONAL = (result) /* BBS:OPTIONAL/ */ FLang = OPTIONAL'LANGUAGES.OPT' /* add the filename */ IF exists(Flang) THEN DO /* Check */ x = 0 /* reset x to 0 */ OPEN(fnl,Flang,'R') /* Check # of lines... */ DO until eof(fnl) /* to the end of file. */ var.x = readln(fnl) /* Number of lines = x */ /* MESSAGE var.x x */ /* available languages */ x = x+1 /* */ END /* */ CLOSE(fnl) /* */ END /* */ LANG = var.LANG /* */ /* MESSAGE 'LANGUAGE:' LANG */ /* <-Example for output */ /*======================================================================*/ /* The selected LANGUAGE of the online User holds the variable: LANG */ /*======================================================================*/ l=E /********************* DLD *************************/ DLD: INFO = ' Info: ' ERR3.E = SENDSTRING INFO' No File found - nothing downloaded! ' ERR3.G = SENDSTRING INFO' Keine 'type' gefunden - kein Download. ' ADDRESS COMMAND 'LIST >'UDDIR'/UpdateList-'BBS_NODE'u 'DOORUD' LFormat="%-25s %6L %-9D %T %-22C"' ADDRESS COMMAND 'SORT 'UDDIR'/UpdateList-'BBS_NODE'u 'UDDIR'/UpdateList-'BBS_NODE'' VMODE=0 x = 1 f=0 file12 = UDDIR'/UpdateList-'BBS_NODE IF exists(file12) THEN DO OPEN(fn12,file12,'R') /* Check # of lines */ DO until eof(fn12) /* to the end of file */ ar.x = readln(fn12) /* Number of lines = x */ var.x = SUBSTR(ar.x,1,99) x = x+1 /* */ END /* */ CLOSE(fn12) /* */ END x = x-2 s=0 DO s = 0 TO x Mark.s = 0 Flag.s = '' END s m=0 IF GFX = 0 THEN DO CLS END IF GFX = 1 THEN DO SENDSTRING 'H' END MESSAGE HEADER1 HEADER2 MESSAGE MESSAGE ' No. Filename Bytes Date Time Comment ' MESSAGE '-------------------------------------------------------------------------------' DO m = 1 TO x new = LEFT(''RIGHT('['m']',14,' ')' 'var.m' ',135,' ') MESSAGE RIGHT(new,135,' ') END m MESSAGE '------------------------------------------------------------------------------- ' ADDRESS COMMAND 'LIST >'UDDIR'/UpdateList-'BBS_NODE'u 'DOORUD' LFormat="%s%s"' ADDRESS COMMAND 'SORT 'UDDIR'/UpdateList-'BBS_NODE'u 'UDDIR'/UpdateList-'BBS_NODE'' file13 = UDDIR'/UpdateList-'BBS_NODE y=1 IF exists(file13) THEN DO OPEN(fn13,file13,'R') /* Check # of lines */ DO until eof(fn13) /* to the end of file */ FLine.y = readln(fn13) /* Number of lines = x */ y = y+1 /* */ END /* */ CLOSE(fn13) /* */ END z=1 ADDRESS COMMAND 'LIST >'UDDIR'/UpdateList-'BBS_NODE'u 'DOORUD' LFormat="%s"' ADDRESS COMMAND 'SORT 'UDDIR'/UpdateList-'BBS_NODE'u 'UDDIR'/UpdateList-'BBS_NODE'' file14 = UDDIR'/UpdateList-'BBS_NODE y=1 IF exists(file14) THEN DO OPEN(fn14,file14,'R') /* Check # of lines */ DO until eof(fn14) /* to the end of file */ FName.y = readln(fn14) /* Number of lines = x */ y = y+1 /* */ END /* */ CLOSE(fn14) /* */ END z=1 ASK_DL: FC = '' VIE= '' OF = '' SENDSTRING 'Update Menu [1-' IF VMODE=0 THEN DO IF SN = 1 THEN DO FC='/F' OF='/O' END IF VMODE=1 THEN DO VIE='/V' END SENDSTRING x''FC''VIE''OF'/Q/C/A/S/G/D/H/?] : ' END QUERY ADLD = upper(result) IF ADLD = 'O' THEN DO IF SHUTOFF = 1 THEN DO SHUTOFF = 0 MESSAGE 'ON' CALL STATS2 CALL JEP END IF SHUTOFF = 0 THEN DO SHUTOFF = 1 MESSAGE 'OFF' CALL STATS2 CALL JEP END END IF ADLD = '' THEN DO CALL JEP END IF ADLD = 'C' THEN DO f=0 j=0 s=0 DO s = 0 TO x IF Mark.s > 0 THEN DO Mark.s = 0 Flag.s = '' END j=j+1 END s IF exists(file10) THEN DO ADDRESS COMMAND 'DELETE 'file10' >NIL:' END CALL JEP END /*======================================================================*/ /* FILENOTE */ /*======================================================================*/ IF ADLD = 'F' THEN DO FILENOTE: NUMB=0 MESSAGE IF SN ~= 1 THEN DO MESSAGE INFO' This is a Sysop-Command, only!' CALL JEP END SENDSTRING 'Please enter the Filenumber: ' QUERY NUMB=(result) IF NUMB = 'q' THEN DO CLS CALL JEP END IF DATATYPE(NUMB) ~= NUM THEN DO MESSAGE INFO' This was not a number! Try again or [q] to exit command.' CALL FILENOTE END IF NUMB > x THEN DO MESSAGE INFO' File not online! Try again.' CALL FILENOTE END IF NUMB < 1 THEN DO MESSAGE INFO' File not online! Try again.' CALL FILENOTE END MESSAGE MESSAGE ' [----------------------] [RETRUN] = No Comment ' SENDSTRING 'Please enter a Comment: ' QUERY COMMENT=(result) ADDRESS COMMAND 'FILENOTE 'FLine.NUMB' "'COMMENT'"' ADDRESS COMMAND 'LIST >'UDDIR'/UpdateList-'BBS_NODE'u 'DOORUD' LFormat="%-25s %6L %-9D %T %-22C"' ADDRESS COMMAND 'SORT 'UDDIR'/UpdateList-'BBS_NODE'u 'UDDIR'/UpdateList-'BBS_NODE'' VMODE=0 x = 1 f=0 file12 = UDDIR'/UpdateList-'BBS_NODE IF exists(file12) THEN DO OPEN(fn12,file12,'R') /* Check # of lines */ DO until eof(fn12) /* to the end of file */ ar.x = readln(fn12) /* Number of lines = x */ var.x = SUBSTR(ar.x,1,99) x = x+1 /* */ END /* */ CLOSE(fn12) /* */ END x = x-2 CLS END IF ADLD = 'S' THEN DO q=0 IF f=0 THEN DO MESSAGE 'No Files flagged!' CALL JEP END /*======================================================================*/ /* GET DATE & TIME AND CREATE AN SECURITY CODE */ /*======================================================================*/ KOD.1=SUBSTR(DAT,1,2) /* Get Day (12) */ KOD.2=SUBSTR(DAT,4,2) /* Month(04) */ KOD.3=SUBSTR(DAT,7,2) /* Date (22) */ KOD.4=SUBSTR(COD,1,2) /* Time (02:36:00) */ KOD.5=SUBSTR(COD,4,2) /* Time (02:36:00) */ KOD.6=SUBSTR(COD,7,2) /* Time (02:36:00) */ /* */ LTT.1 ='A';LTT.27='A';LTT.53='A';LTT.79='A'; /* */ LTT.2 ='B';LTT.28='B';LTT.54='B';LTT.81='B'; /* */ LTT.3 ='C';LTT.29='C';LTT.55='C';LTT.82='C'; /* */ LTT.4 ='D';LTT.30='D';LTT.56='D';LTT.83='D'; /* */ LTT.5 ='E';LTT.31='E';LTT.57='E';LTT.84='E'; /* */ LTT.6 ='F';LTT.32='F';LTT.58='F';LTT.85='F'; /* */ LTT.7 ='G';LTT.33='G';LTT.59='G';LTT.86='G'; /* */ LTT.8 ='H';LTT.34='H';LTT.60='H';LTT.87='H'; /* */ LTT.9 ='I';LTT.35='I';LTT.61='I';LTT.88='I'; /* */ LTT.10='J';LTT.36='J';LTT.62='J';LTT.89='J'; /* */ LTT.11='K';LTT.37='K';LTT.63='K';LTT.90='K'; /* */ LTT.12='L';LTT.38='L';LTT.64='L';LTT.91='L'; /* */ LTT.13='M';LTT.39='M';LTT.65='M';LTT.92='M'; /* */ LTT.14='N';LTT.40='N';LTT.66='N';LTT.93='N'; /* */ LTT.15='O';LTT.41='O';LTT.67='O';LTT.94='O'; /* */ LTT.16='P';LTT.42='P';LTT.68='P';LTT.95='P'; /* */ LTT.17='Q';LTT.43='Q';LTT.69='Q';LTT.96='Q'; /* */ LTT.18='R';LTT.44='R';LTT.70='R';LTT.97='R'; /* */ LTT.19='S';LTT.45='S';LTT.71='S';LTT.98='S'; /* */ LTT.20='T';LTT.46='T';LTT.72='T';LTT.99='T'; /* */ LTT.21='U';LTT.47='U';LTT.73='U';LTT.00='!'; /* */ LTT.22='V';LTT.48='V';LTT.74='V';LTT.01='1'; /* */ LTT.23='W';LTT.49='W';LTT.75='W';LTT.02='2'; /* */ LTT.24='X';LTT.50='X';LTT.76='X';LTT.03='3'; /* */ LTT.25='Y';LTT.51='Y';LTT.77='Y';LTT.04='4'; /* */ LTT.26='Z';LTT.52='Z';LTT.78='Z';LTT.05='5'; /* */ LTT.06='6';LTT.07='7';LTT.08='8';LTT.09='9'; /* */ LTT.80='U'; /* */ CODE=KOD.1+ KOD.2+ KOD.3+ KOD.4+ KOD.5+ KOD.6+KOD.6+BBS_NODE /* */ IF LENGTH(CODE)=3 THEN DO /* */ CODE1=SUBSTR(CODE,1,1) /* */ CODE2=SUBSTR(CODE,2,2) /* */ CODE1=CODE1+BBS_NODE /* */ CODE=LTT.CODE2||CODE1 /* */ END /* */ /*======================================================================*/ CLS IF A < MAX THEN DO IF exists(file10) THEN DO ADDRESS COMMAND 'DELETE 'file10' >NIL:' END Max = a END MESSAGE HEADER1 HEADER2 MESSAGE MESSAGE MESSAGE 'Creating individual Filename: Temp_'CODE'.lha' MESSAGE '----------------------------------------- ' IF LENGTH(STATEF(UDDIR))=0 THEN DO MESSAGE 'Error: Directory not found - creating directory! ' ADDRESS COMMAND 'makedir 'UDDIR'' END /* Make Batch to start LhA asynchron */ IF ~OPEN(BAT,"NODE:UD.bat-"BBS_NODE,'W') THEN CALL ERROR WRITELN(BAT,".key Filename") WRITELN(BAT,"lha -e a "UDDIR"/Temp_"CODE".lha <Filename> >FIFO:UD_Node-"BBS_Node"/wkme") WRITELN(BAT,"IF WARN") WRITELN(BAT,"SetEnv LhAErr-"BBS_Node" 1") WRITELN(BAT,"ENDIF") IF ~CLOSE(BAT) THEN CALL ERROR m=0 s=0 z=0 DO m = 1 TO x s=s+1 z=z+1 IF Flag.s ~= 'Flagged!' THEN DO FNLength.z = 0 END IF Flag.s = 'Flagged!' THEN DO f=f+1 ADDRESS COMMAND 'run >NIL: execute NODE:UD.bat-'BBS_NODE' 'FLine.z SENDSTRING '' CALL View SENDSTRING '' END END m MESSAGE MESSAGE 'File/Archive complete. Includes: 'a' Updates, Size: 'WORD(STATEF(''UDDIR'/Temp_'CODE'.lha'),2) 'Bytes' CALL ASK_DLD CLS END IF ADLD = 'A' THEN DO j=0 s=0 DO s = 0 TO x Mark.s = Mark.j + 2 Flag.s = 'Flagged!' j=j+1 END s CALL JEP END IF ADLD = 'Q' THEN DO CALL DONE END IF ADLD = 'V' THEN DO MESSAGE 'Not implemeted in this version.' CALL JEP IF VMODE=1 THEN DO MESSAGE 'Already used!' CALL JEP END MESSAGE 'TEST1' VMODE=1 ADDRESS COMMAND 'ECHO >'UDDIR'/List1-'BBS_NODE' "FAILAT 21"' ADDRESS COMMAND 'LIST >>'UDDIR'/List1-'BBS_NODE' 'DOORUD' LFormat="VERSION %s%s >>'UDDIR'/VER"' MESSAGE 'TEST2' ADDRESS COMMAND 'FAILAT 21' MESSAGE 'TEST3' ADDRESS COMMAND 'execute 'UDDIR'/List1-'BBS_NODE'' MESSAGE 'TEST4' file15 = ''UDDIR'/VER' a=1 IF exists(file15) THEN DO OPEN(fn15,file15,'R') /* Check # of lines */ DO until eof(fn15) /* to the end of file */ FVersion.a = readln(fn15) /* Number of lines = a */ MESSAGE FVersion.a a = a+1 /* */ END /* */ CLOSE(fn15) /* */ END z=1 MESSAGE 'TEST5' DO z = 1 TO x /* MESSAGE FIND(FVersion.z,'Could not find version information') */ MESSAGE SUBWORD(FVersion.z,5,1) IF SUBWORD(FVersion.z,5,1) = 'information' THEN DO MESSAGE 'String gefunden' FVersion.z = ' ' END /* MESSAGE FVersion.z z IF FIND(FVersion.z,'Could not find version information') > 1 THEN DO MESSAGE 'String gefunden' FVersion.z = ' ' END */ /* IF FVersion.z = 'Could not find version information' THEN DO FVersion.z = ' ' END */ END z MESSAGE 'TEST6' w=1 ADDRESS COMMAND 'DELETE 'UDDIR'/List1-'BBS_NODE' >NIL:' MESSAGE 'TEST7' ADDRESS COMMAND 'LIST >'UDDIR'/List1-'BBS_NODE' 'DOORUD' LFormat="%-25s %6L %-9D %T "' MESSAGE 'TEST8' file11 = UDDIR'/List1-'BBS_NODE'' IF exists(file11) THEN DO OPEN(fn11,file11,'R') /* Check # of lines */ DO until eof(fn11) /* to the end of file */ varv.w = readln(fn11) /* Number of lines = w */ w = w+1 /* */ END /* */ CLOSE(fn11) /* */ END ADDRESS COMMAND 'DELETE 'UDDIR'/List1-'BBS_NODE' >NIL:' ADDRESS COMMAND 'DELETE 'UDDIR'/VER >NIL:' CALL JEP END IF ADLD = '?' THEN DO MENU.0 = MESSAGE ' Updater Menu ' MENU.1 = MESSAGE MENU.2 = MESSAGE ' [A] All, flag all Files [#] Flag File # Toggle ' MENU.3 = MESSAGE ' [C] Clear flagged Files [?] Displays this Menu ' MENU.4 = MESSAGE ' [H] Help, displays Help-Text [G] Goodbye, leave System (hangup!) ' MENU.5 = MESSAGE ' [S] Start Update/add & DL selected Files [Q] Quit, exit Updater ' MENU.6 = MESSAGE ' [V] Version, get versions of all Files ' MENU.7 = MESSAGE '' IF SN = 1 THEN DO MENU.6 = MESSAGE ' [V] Version, get versions of all Files [F] Add/Clear Filenote/Filecomment ' MENU.7 = MESSAGE ' [O] Off/On Toggle, Sysop Command ' END CLS MESSAGE HEADER1 HEADER2 MESSAGE IF LANG = 'English' THEN DO MENU.0 MENU.1 MENU.2 MENU.3 MENU.4 MENU.5 MENU.6 MENU.7 END fileLANG = TEXT||LANG||'/Menu-UpdateTool' IF LANG ~= 'English' THEN DO IF ~EXISTS(fileLANG) THEN DO MENU.0 MENU.1 MENU.2 MENU.3 MENU.4 MENU.5 MENU.6 MENU.7 MESSAGE MESSAGE ' Menu-Help in 'LANG' is not available at the moment. Notify Sysop! ' END END IF EXISTS(fileLANG) THEN DO SENDFILE TEXT||LANG||'/Menu-UpdateTool' END MESSAGE SENDSTRING '[RETURN] to continue... ' GETCHAR CLS CALL JEP END IF ADLD = 'H' THEN DO CLS MESSAGE HEADER1 HEADER2 MESSAGE IF LANG = 'English' THEN DO HELP.0 = MESSAGE ' Updater Help ' HELP.1 = MESSAGE HELP.2 = MESSAGE ' [A] All, flag all Files................... Flag all Files for archiving. Use' HELP.3 = MESSAGE ' [S]tart for archiving and Download.' HELP.4 = MESSAGE ' [C] Clear flagged Files................... and clear all Files from Archive.' HELP.5 = MESSAGE ' [H] Help, displays Help-Text.............. Displays this Help-Text.' HELP.6 = MESSAGE ' [S] Start Update/add & DL selected Files.. that are flagged. After adding a' HELP.7 = MESSAGE ' Download prompt follows.' HELP.8 = MESSAGE ' [V] Version, get versions of all Files.... if a version string is found.' HELP.9 = MESSAGE HELP.10= MESSAGE ' [#] Flag File # Toggle.................... A number followed by a [RETURN]' HELP.11= MESSAGE ' flaggs or un-flaggs a File.' HELP.12= MESSAGE ' [?] Display Menu.......................... Displays the Menu.' HELP.13= MESSAGE ' [G] Goodbye, leave System (hangup!)....... Quick Logoff - no security check!' HELP.14= MESSAGE ' [Q] Quit, exit Updater.................... goes back to the Menu of the BBS.' HELP.15= MESSAGE ' [F] Filenote/Filecomment.................. ability for BBS Sysop only!' HELP.16= MESSAGE ' [O] On/Off Toggle, Sysop Command.......... ability for BBS Sysop only!' HELP.0 HELP.1 HELP.2 HELP.3 MESSAGE HELP.4 MESSAGE HELP.5 MESSAGE HELP.6 HELP.7 MESSAGE HELP.8 HELP.9 SENDSTRING '[RETURN] to continue... ' GETCHAR CLS MESSAGE HEADER1 HEADER2 MESSAGE HELP.0 MESSAGE HELP.10 HELP.11 MESSAGE HELP.12 MESSAGE HELP.13 MESSAGE HELP.14 IF SN = 1 THEN DO MESSAGE HELP.15 MESSAGE HELP.16 END END fileLANG = TEXT||LANG||'/Help-UpdateTool' IF LANG ~= 'English' THEN DO IF ~EXISTS(fileLANG) THEN DO HELP.0 HELP.1 HELP.2 HELP.3 HELP.4 HELP.5 HELP.6 MESSAGE MESSAGE INFO' Help in 'LANG' is not available at the moment. Notify Sysop!' END END IF EXISTS(fileLANG) THEN DO SENDFILE TEXT||LANG||'/Help-UpdateTool' END MESSAGE SENDSTRING '[RETURN] to continue... ' GETCHAR CLS CALL JEP END IF ADLD = 'D' THEN DO MESSAGE INFO' Use [S] to start packing Files and download!' CALL JEP IF f=0 THEN DO MESSAGE 'No Files selected!' CALL JEP END CALL ASK_DLD END IF ADLD = 'G' THEN DO MESSAGE 'G' DROPCARRIER CALL DONE END IF ADLD < 0 THEN DO CALL JEP END IF ADLD > x THEN DO CALL JEP END MESSAGE MESSAGE IF GFX = 0 THEN DO CLS END IF GFX = 1 THEN DO SENDSTRING 'H' END j=0 s=0 DO s = 0 TO x IF ADLD = 0 THEN DO Mark.s = 0 END IF ADLD = s THEN DO Mark.s = Mark.j + 2 Flag.s = 'Flagged!' f=f+1 IF Mark.s > 2 THEN DO Mark.s = Mark.j - 4 Flag.s = '' END END j=j+1 END s JEP: s=0 j=0 v=0 m=0 IF GFX = 0 THEN DO CLS END IF GFX = 1 THEN DO SENDSTRING 'H' END MESSAGE HEADER1 HEADER2 MESSAGE IF VMODE=0 THEN DO MESSAGE ' No. Filename Bytes Date Time Comment ' END IF VMODE=1 THEN DO MESSAGE ' No. Filename Bytes Date Time Version ' END MESSAGE '-------------------------------------------------------------------------------' DO m = 1 TO x j=j+1 s=s+1 v=v+1 IF VMODE=0 THEN DO new = LEFT(''RIGHT('['m']',14,' ')' 'var.m' ',135,' ') IF Flag.s = 'Flagged!' THEN DO IF GFX = 0 THEN DO new = LEFT(''RIGHT('-'m'-',14,' ')' 'var.m' ',135,' ') END IF GFX = 1 THEN DO new = LEFT(''RIGHT('['m']',14,' ')' 'var.m' ',135,' ') END new=OVERLAY(Flag.s,new,84,13) END MESSAGE RIGHT(new,135,' ') END IF VMODE=1 THEN DO new = LEFT(''RIGHT('['m']',14,' ')' 'varv.m''LEFT(''FVersion.m'',23,' ')' ',135,' ') IF Flag.s = 'Flagged!' THEN DO IF GFX = 0 THEN DO new = LEFT(''RIGHT('-'m'-',14,' ')' 'varv.m''LEFT(''FVersion.m'',23,' ')' ',135,' ') END IF GFX = 1 THEN DO new = LEFT(''RIGHT('['m']',14,' ')' 'varv.m''LEFT(''FVersion.m'',23,' ')' ',135,' ') END new=OVERLAY(Flag.s,new,84,13) END MESSAGE RIGHT(new,135,' ') END END m MESSAGE '-------------------------------------------------------------------------------' m=0 s=0 z=0 a=0 DO m = 1 TO x s=s+1 z=z+1 IF Flag.s = 'Flagged!' THEN DO f=1 a=a+1 END END m CALL ASK_DL ASK_DLD: IF LENGTH(STATEF(UDDIR))=0 THEN DO MESSAGE 'ERROR: File not found!' CALL DONE END MESSAGE file10 = UDDIR'/Temp_'CODE'.lha' IF ~exists(file10) THEN DO MESSAGE ERR3.l GETCHAR CALL JEP END ASK_DLD: Q10.E = SENDSTRING 'Start Download of `Temp_'CODE'.lha` ? [Y/n] : ' Q10.G = SENDSTRING 'Download der `Temp_'CODE'.lha` starten? [J/n] : ' MESSAGE Q10.l GETCHAR ADLD = upper(result) SELECT WHEN ADLD='N' THEN CALL JEP WHEN ADLD='Y' THEN CALL GO_DLD WHEN ADLD='J' THEN CALL GO_DLD WHEN ADLD=' ' THEN CALL GO_DLD WHEN ADLD='Q' THEN CALL DONE OTHERWISE CALL ASK_DLD END GO_DLD: /*============= ADDING FILE_ID.DIZ & START DL =================*/ m=0 s=0 z=0 a=0 DO m = 1 TO x s=s+1 z=z+1 IF Flag.s = 'Flagged!' THEN DO f=1 a=a+1 ADName.a = FName.z END END m UPDATE = 'Update/Tool' IF a > 1 THEN DO UPDATE = 'Updates/Tools' END LenLine=44 /* Länge der auszugebenden Zeile */ Max=a /* Anzahl Files */ x=1;y=1 /* Laufzähler */ Output.1="" /* Ersten Ausgabe-Variable initialisieren */ DO FOREVER /* */ L1=LENGTH(Output.x) /* Länge des Augabe Strings */ L2=LENGTH(ADName.y) /* Länge des Filenamens */ IF L1+L2 > LenLine THEN DO /* Ausgabe + Filename > Maximum??? */ x=x+1 /* Ja, dann neue Ausgabe-Variable */ Output.x="" /* und initialisieren */ END /* */ Output.x = Output.x || ADName.y/* Zusammenfügen */ y=y+1 /* Nächste Filename */ IF y > Max THEN LEAVE /* Letzte File erreicht? */ /* Noch platz für Komma und Space? */ IF LENGTH(Output.x)+2 <= LenLine THEN Output.x = Output.x || ", " END MARK: CLS file0 = UDDIR'/FILE_ID.DIZ' /* */ OPEN(fn0,file0,'W') /* */ Writeln(fn0,''a' 'UPDATE' for /T\empest BBS Software:') /* */ CLOSE(fn0) /* */ MESSAGE HEADER1 HEADER2 MESSAGE MESSAGE MESSAGE ' Filename Size Date Description' MESSAGE ' ------------ ------- -------- -------------------------------------------- ' MESSAGE ' Temp_'CODE'.lha 'RIGHT(WORD(STATEF(''UDDIR'/Temp_'CODE'.lha'),2),7,' ')' 'DAT' 'a' 'UPDATE' for /T\empest BBS Software:' DO i=1 TO x IF i > 4 THEN DO OPEN(fn0,file0,'a') /* */ WriteLN(fn0,'& more. Support BBS: 'SYSTEM'') /* */ CLOSE(fn0) /* */ MESSAGE ' & more. Support BBS: 'SYSTEM'' CALL ADD2PACK END MESSAGE ' 'Output.i OPEN(fn0,file0,'a') /* */ WriteLN(fn0,Output.i) /* */ CLOSE(fn0) /* */ END ADD2PACK: IF i < 4 THEN DO OPEN(fn0,file0,'a') /* */ WriteLN(fn0,'Support BBS: 'SYSTEM'') /* */ MESSAGE ' Support BBS: 'SYSTEM'' /* */ CLOSE(fn0) /* */ END OPEN(fn0,file0,'A') /* */ Writeln(fn0,'Download Date/Time: 'DAT', 'COD'') /* */ Writeln(fn0,' _______ ______ _ ___ _______________ ') /* */ Writeln(fn0,'/___ __\/ ___/ \/ \/ _ \/ ___/ _/___ __\ ') /* */ Writeln(fn0,'\/\/ /\_/ __// / ___/ __/\_ \\/\/ /\_/\') /* */ Writeln(fn0,' \/_/ //___//_/\/\/_/\_/___/\___/\\/_/ /\\/') /* */ Writeln(fn0,' \_\/ \___\\_\_\_\_\/ \___\/\__\/ \_\/ BBS') /* */ CLOSE(fn0) /* */ MESSAGE ' Download Date and Time: 'DAT', 'COD'' /* */ MESSAGE ' _______ ______ _ ___ _______________ ' /* */ MESSAGE ' /___ __\/ ___/ \/ \/ _ \/ ___/ _/___ __\ ' /* */ MESSAGE ' \/\/ /\_/ __// / ___/ __/\_ \\/\/ /\_/\' /* */ MESSAGE ' \/_/ //___//_/\/\/_/\_/___/\___/\\/_/ /\\/' /* */ MESSAGE ' \_\/ \___\\_\_\_\_\/ \___\/\__\/ \_\/ BBS ' /* */ ADDRESS COMMAND 'Lha a 'UDDIR'/Temp_'CODE'.lha 'UDDIR'/File_ID.DIZ' /*======================================================================*/ /* RELEASE NOTES / BETA TESTER RULEZ */ /*======================================================================*/ fileLANG = TEXT||LANG||'/Text-UpdateTool' IF EXISTS(fileLANG) THEN DO ADDRESS COMMAND 'COPY 'fileLANG' TO 'UDDIR'/BetaTester.README!' ADDRESS COMMAND 'Lha a 'UDDIR'/Temp_'CODE'.lha 'UDDIR'/BetaTester.README!' END DOWNLOAD file10 ASK_DLD2: Q11.E = SENDSTRING 'Did you get the whole `Temp_'CODE'.lha` ? [Y/N] : ' Q11.G = SENDSTRING 'Hast Du den Download komplett erhalten? [J/N] : ' MESSAGE Q11.l GETCHAR ADLD2 = upper(result) SELECT WHEN ADLD2='N' THEN CALL ASK_DLD3 WHEN ADLD2='Y' THEN CALL DLD_DONE WHEN ADLD2='J' THEN CALL DLD_DONE WHEN ADLD2='Q' THEN CALL DONE OTHERWISE CALL ASK_DLD2 END ASK_DLD3: Q12.E = SENDSTRING 'Start Download again? [Y/N] : ' Q12.G = SENDSTRING 'Download nochmal starten? [J/N] : ' MESSAGE Q12.l GETCHAR ADLD2 = upper(result) SELECT WHEN ADLD2='N' THEN CALL DONE WHEN ADLD2='Y' THEN CALL MARK WHEN ADLD2='J' THEN CALL MARK WHEN ADLD2='Q' THEN CALL DONE OTHERWISE CALL ASK_DLD3 END DLD_DONE: TdyFiles=TdyFiles+a TotalFiles=TotalFiles+a TotalDLDs=TotalDLDs + 1 TdyDLDs=TdyDLDs+1 CALL STATS2 CALL DONE /********************* READ ************************/ /* READ: MESSAGE MESSAGE SENDSTRING 'Please hold, loading data...' /* Checking if its time to reset the output file */ z = 0 Open(fn1,file1,'R') /* Wieviele Zeilen? */ do until eof(fn1) /* Bis zum Ende des Files...*/ var.x = readln(fn1) /* ergibt Variable x */ x = x+1 /* */ end /* */ Close(fn1) /* */ CLS MESSAGE HEADER1 MESSAGE ''COPIES('_',80)' ' MESSAGE '' i = 0 Open(fn1,file1,'R') /* */ do until n = x /* */ line = readln(fn1) /* */ n = n+1 i = i+1 MESSAGE ''line'' If n = x THEN DO until i=15 /* If last Screen is shorter*/ MESSAGE ' ' /* as 12 entries, then fill */ i = i+1 /* screen up to 15 lines for*/ CALL fin END /* cleaner output */ IF n = x THEN DO /* */ call fin /* */ end /* */ If i=15 then do MESSAGE ''COPIES('_',80)' ' MESSAGE '' SendString '[RETURN] or [Q]uit ' getchar yesno = upper(result) if yesno = 'Q' then do Close(fn1) CALL DONE end CLS MESSAGE '' MESSAGE ' Rufnummer Name Art 000000 C Netze Online Date ' MESSAGE ''COPIES('_',80)' ' MESSAGE '' i = 0 end end fin: Close(fn1) MESSAGE ''COPIES('_',80)' ' MESSAGE SendString '[RETURN] to exit... ' getchar */ /*---------------------------------------------------------*/ DONE: IF LENGTH(STATEF(UDDIR)) ~='' THEN DO ADDRESS COMMAND 'DELETE 'UDDIR' ALL >NIL:' END ADDRESS COMMAND 'DELETE NODE:DOOR_'BBS_NODE' >NIL:' /* Kill NODE:DOOR_# Info */ IF EXISTS("NODE:UD.bat-"BBS_NODE) THEN DO ADDRESS COMMAND 'DELETE NODE:UD.bat-'BBS_NODE' >NIL:' END DONE3: CLS MESSAGE HEADER1 HEADER2 MESSAGE MESSAGE CENTER(' _'CENTER('',61,'_')' ',98,' ') MESSAGE CENTER('| 'CENTER('',61,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER(''PROGRAMNAME' v'VERS', written for /T\empest BBS Software',62,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER('by Casa Nova, Skyline BBS Berlin, +49 (0)30 824-1071.',62,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER('Idea taken from the Beta Updater Door v3.3 by Chad Kovac',62,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER('',62,'_')'| ',108,' ') MESSAGE CENTER(' 'CENTER('',61,' ')' ',98,' ') MESSAGE MESSAGE CENTER(' _'CENTER('',36,'_')' ',98,' ') MESSAGE CENTER('| 'CENTER('',36,' ')'| ',108,' ') MESSAGE CENTER('| Updater Stats 'RIGHT(Today,5,' ')' 'RIGHT(Total,5,' ')' | ',122,' ') MESSAGE CENTER('|'CENTER('',37,' ')'| ',108,' ') MESSAGE CENTER('| Used...........: 'RIGHT(TdyUsed,4,' ')' 'RIGHT(TotalUsed,4,' ')' | ',122,' ') MESSAGE CENTER('| Files send.....: 'RIGHT(TdyFiles,4,' ')' 'RIGHT(TotalFiles,4,' ')' | ',122,' ') MESSAGE CENTER('| Downloads......: 'RIGHT(TdyDLDs,4,' ')' 'RIGHT(TotalDLDs,4,' ')' | ',122,' ') MESSAGE CENTER('|'CENTER('',37,'_')'| ',108,' ') MESSAGE CENTER(' 'CENTER('',36,' ')' ',99,' ') MESSAGE IF SHUTOFF = 1 THEN DO OFF = OFF MESSAGE ' Sorry, but the Tool is offline at the moment.' END IF SHUTOFF = 0 THEN DO OFF = ON SCREENOUT 'Updater is: ' OFF END MESSAGE /*---------------------------------------------------------*/ DONE2: 'exit' exit /* View what LhA is doing */ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ View: Chars="";Out="";Endoffile=0;Offset=1;Newcount=1;xyz=0 /* Do not change! */ IF ~OPEN(DAT,"FIFO:UD_Node-"BBS_Node"/r",'R') THEN CALL ERROR DO FOREVER Chars=Chars || READCH(DAT,20) DO FOREVER Offset=INDEX(Chars,'0D'x) IF Offset~=0 THEN LEAVE Chars=Chars || READCH(DAT,10) IF EOF(DAT) THEN DO Offset=LENGTH(Chars) Endoffile=1 LEAVE END END Out=LEFT(Chars,Offset) new=1;old=1 IF INDEX(Out,'0A'x)~=0 THEN DO DO FOREVER xyz=xyz+1 IF INDEX(Out,'0A'x,new)=0 THEN LEAVE new=INDEX(Out,'0A'x,new) Out2=SUBSTR(Out,old,new-old) || '0D'x old=new IF xyz>4 & xyz<7 THEN 'message' Out2 new=new+1 END END ELSE DO 'message' Out "A" END Newcount=LENGTH(Chars)-Offset Chars=RIGHT(Chars,Newcount) IF Endoffile=1 THEN LEAVE END IF ~CLOSE(DAT) THEN CALL ERROR RETURN /* END of View */ SYNTAX: message " **SYNTAX ERROR** in UpdateTool line: " SIGL message "Severity: " RC errortext(RC) message " " message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit ERROR: message " **IO ERROR** in UpdateTool line: " SIGL message "Severity: " RC errortext(RC) message " " message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit HALT: message " **HALT** in UpdateTool line: " SIGL message "Severity: " RC errortext(RC) message " " message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit FAILURE: message " **FAILURE** in UpdateTool line: " SIGL message "Severity: " RC errortext(RC) message " " message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit NOVALUE: message " **NOVALUE** in UpdateTool line: " SIGL message "Severity: " RC errortext(RC) message " " message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit IOERR: message " **IOERR** in UpdateTool line: " SIGL message "Severity: " RC errortext(RC) message " " message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit STATS2: OPEN(fnCON,fileCON,'W') WRITELN(fnCON,'UPDATE! 'VERS'') /* 1 11 Letter */ WRITELN(fnCON,ShutOff) /* 2 11 Letter */ WRITELN(fnCON,TdyDate) /* 3 11 Letter */ WRITELN(fnCON,TdyFiles) /* 4 11 Letter */ WRITELN(fnCON,TdyUsed) /* 5 11 Letter */ WRITELN(fnCON,TdyDLDs) /* 6 11 Letter */ WRITELN(fnCON,TdyUPD) /* 7 11 Letter */ WRITELN(fnCON,TotalUsed) /* 8 11 Letter */ WRITELN(fnCON,TotalFiles) /* 9 11 Letter */ WRITELN(fnCON,TotalDLDs) /* 10 11 Letter */ WRITELN(fnCON,TotalUPD) /* 11 11 Letter */ WRITELN(fnCON,'UPDATE!') /* 12 11 Letter */ /* WRITECH(fnCON,D2C('0')) */ CLOSE(fnCON) RETURN